package com.zl.demo.common.controller;

import com.zl.demo.common.controller.abstracts.AbstractBaseController;
import com.zl.demo.common.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 基础公共的Controller
 * @param <T> 实体
 * @param <E> 数组
 * @param <N> 表名
 * @author zl
 */
public class BaseController<T,E,N> extends AbstractBaseController<T,E> {

    @Autowired
    private BaseService<T,E,N> service;

    /**
     * 查询列表数据
     * @param
     * @return
     */
    @Override
    public Map<String, Object> listAll(T t) {
        Map<String, Object> map = new HashMap<>();
        map.put("list",service.listAll(t));
        return map;
    }

    /**
     * 分页查询列表数据
     * @param pageNumber 分页数量
     * @param pageSize 分页大小
     * @param t 实体类
     * @return
     */
    @Override
    public Map<String, Object> list(Integer pageNumber, Integer pageSize, T t) {
        Map<String, Object> map = new HashMap<>();
        //测试数据
        pageNumber=1;
        pageSize=10;
        //开始分页
        /*PageHelper.startPage(pageNumber, pageSize);
        List<T> list=service.list(t);
        PageInfo<T> page= new PageInfo<>(list);
        map.put("page",page);*/
        return map;

    }


    /**
     * 查询数据详情
     * @param t 泛型实体
     * @return
     */
    @Override
    public T info(T t) {
        return service.info(t);
    }

    /**
     * 添加数据接口
     * @param t
     * @return
     */
    @Override
    public int add(T t) {
        return service.add(t);
    }

    /**
     * 更新数据接口
     * @param t 实体类
     * @return
     */
    @Override
    public int update(T t) {
        return service.update(t);
    }

    /**
     * 删除数据接口
     * @param ids
     * @param t 泛型实体
     * @return
     */
    @Override
    public int delete(E ids,T t) {
        return service.delete(ids,t);
    }


}
